<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 什么是闭包？面试题
        // 定义：内层函数引用外层函数变量的集合
        // ===> 闭包 = 内层函数 + 外层函数的变量

        // 形成条件：
        // 1. 首先要有内层函数
        // 2. 内层函数使用了外层函数的变量

        // 外层函数就相当于把这个整体包裹起来了，所以叫闭包

        // 简单的写法
        function outer() {
            const a = 10
            function fn() {
                console.log(a)
            }
            fn()
        }
        outer() // 10

        // Scope 作用域
        // 1.Local 局部作用域  2.Global 全局作用域  3.Closure 闭包  4.Block 块级作用域
    </script>
</body>
</html>